// ------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
// Licensed under the MIT License (MIT). See License.txt in the repo root for license information.
// ------------------------------------------------------------

#pragma once

#include <fstream>

#include "Common/Common.h"
#include "ServiceModel/ServiceModel.h"
#include "Federation/Federation.h"

#ifdef PLATFORM_UNIX
#include "Common/CryptoUtility.Linux.h" 
#include "Transport/TransportSecurity.Linux.h"
#endif

#include "Transport/ListenInstance.h"
#include "Transport/SecurityNegotiationHeader.h"
#include "Transport/SecurityContext.h"
#include "Transport/SecurityContextSsl.h"

#include "Transport/TransportConfig.h"
#include "client/ClientServerTransport/ClientServerTransport.external.h"
#include "query/Query.h"
#include "Hosting2/Hosting.Runtime.h"
#include "Reliability/Reliability.h"
#include "Management/ClusterManager/ClusterManager.h"
#include "Management/infrastructureservice/InfrastructureService.h"
#include "Management/healthmanager/healthmanager.h"
#include "Management/TokenValidationService/TokenValidationService.h"
#include "Management/ImageStore/ImageStore.h"
#include "Management/FileStoreService/IFileStoreClient.h"

#include "Communication/NamespaceManager/NamespaceManagerMessage.h"
#include "Store/Store.Internal.h"
#include "api/definitions/ApiDefinitions.h"
#include "client/HealthReportingTransport.h"
#include "client/HealthReportingComponent.h"
#include "client/ClientFactory.h"
#include "client/FileSender.h"
#include "client/FileReceiver.h"
#include "Hosting2/Hosting.Internal.h"
#include "FabricGateway/FabricGateway.h"

// General
#include "Naming/NamingCommonEventSource.h"
#include "Naming/GatewayCounters.h"
#include "Naming/NamingCounters.h"

#include "Naming/NamingServiceCuidCollection.h"
#include "Naming/NamingUtility.h"

// Messaging (shared with other components)
#include "Naming/namingmessages.h"

// Messaging (internal)
#include "Naming/PrimaryRecoveryHeader.h"
#include "Naming/ClientIdentityHeader.h"

// Server sub-components
#include "Naming/INamingMessageProcessor.h"
#include "Naming/IGateway.h"
#include "Naming/IGatewayManager.h"
#include "Naming/ActivityTracedComponent.h"
#include "Naming/BroadcastRequestEntry.h"
#include "Naming/BroadcastRequestVector.h"
#include "Naming/GatewayEventSource.h"
#include "Naming/EntreeServiceIpcChannelBase.h"
#include "Naming/EntreeServiceToProxyIpcChannel.h"
#include "Naming/ServiceNotificationManagerProxy.h"
#include "Naming/EntreeServiceTransport.h"
#include "Naming/EntreeServiceIpcInitResponseMessageBody.h"
#include "Naming/ProxyToEntreeServiceIpcChannel.h"
#include "Naming/EntreeServiceProxy.h"
#include "Naming/EntreeServiceProxy.RequestAsyncOperationBase.h"
#include "Naming/BroadcastWaiters.h"
#include "Naming/BroadcastEventManager.h"
#include "Naming/ServiceNotificationSender.h"
#include "Naming/ClientRegistrationTable.h"
#include "Naming/ServiceNotificationManager.h"
#include "Naming/TestGatewayManager.h"
#include "Naming/FabricApplicationGatewayManager.h"
#include "Naming/FabricGatewayManager.h"
#include "Naming/GatewayManagerWrapper.h"
#include "Naming/GatewayProperties.h"
#include "Naming/GatewayNotificationReplyBuilder.h"
#include "Naming/FileTransferGateway.h"
#include "Naming/EntreeService.h"
#include "Naming/EntreeService.RequestAsyncOperationBase.h"
#include "Naming/EntreeService.CompletedRequestAsyncOperation.h"
#include "Naming/EntreeService.AdminRequestAsyncOperationBase.h"
#include "Naming/EntreeService.NamingRequestAsyncOperationBase.h"
#include "Naming/EntreeService.ServiceResolutionAsyncOperationBase.h"
#include "Naming/EntreeService.CreateNameAsyncOperation.h"
#include "Naming/EntreeService.CreateServiceAsyncOperation.h"
#include "Naming/EntreeService.CreateSystemServiceAsyncOperation.h"
#include "Naming/EntreeService.UpdateServiceAsyncOperation.h"
#include "Naming/EntreeService.DeleteNameAsyncOperation.h"
#include "Naming/EntreeService.DeleteServiceAsyncOperation.h"
#include "Naming/EntreeService.DeleteSystemServiceAsyncOperation.h"
#include "Naming/EntreeService.EnumeratePropertiesAsyncOperation.h"
#include "Naming/EntreeService.EnumerateSubnamesAsyncOperation.h"
#include "Naming/EntreeService.ForwardToFileStoreServiceAsyncOperation.h"
#include "Naming/EntreeService.ForwardToServiceOperation.h"
#include "Naming/EntreeService.GetApplicationNameAsyncOperation.h"
#include "Naming/EntreeService.GetServiceDescriptionAsyncOperation.h"
#include "Naming/EntreeService.NameExistsAsyncOperation.h"
#include "Naming/EntreeService.PingAsyncOperation.h"
#include "Naming/EntreeService.PropertyBatchAsyncOperation.h"
#include "Naming/EntreeService.DeactivateNodeAsyncOperation.h"
#include "Naming/EntreeService.ActivateNodeAsyncOperation.h"
#include "Naming/EntreeService.DeactivateNodesBatchAsyncOperation.h"
#include "Naming/EntreeService.RemoveNodeDeactivationsAsyncOperation.h"
#include "Naming/EntreeService.GetNodeDeactivationStatusAsyncOperation.h"
#include "Naming/EntreeService.NodeStateRemovedAsyncOperation.h"
#include "Naming/EntreeService.RecoverPartitionsAsyncOperation.h"
#include "Naming/EntreeService.RecoverPartitionAsyncOperation.h"
#include "Naming/EntreeService.RecoverServicePartitionsAsyncOperation.h"
#include "Naming/EntreeService.RecoverSystemPartitionsAsyncOperation.h"
#include "Naming/EntreeService.ResetPartitionLoadAsyncOperation.h"
#include "Naming/EntreeService.ToggleVerboseServicePlacementHealthReportingAsyncOperation.h"
#include "Naming/EntreeService.ReportFaultAsyncOperation.h"
#include "Naming/EntreeService.FMQueryAsyncOperation.h"
#include "Naming/EntreeService.ResolveNameOwnerAsyncOperation.h"
#include "Naming/EntreeService.ResolvePartitionAsyncOperation.h"
#include "Naming/EntreeService.ResolveServiceAsyncOperation.h"
#include "Naming/EntreeService.ResolveSystemServiceGatewayAsyncOperation.h"
#include "Naming/EntreeService.ResolveSystemServiceAsyncOperation.h"
#include "Naming/EntreeService.PrefixResolveServiceAsyncOperation.h"
#include "Naming/EntreeService.ServiceLocationNotificationAsyncOperation.h"
#include "Naming/EntreeService.SendToNodeOperation.h"
#include "Naming/EntreeService.QueryRequestOperation.h"
#include "Naming/EntreeService.GetQueryListAsyncOperation.h"
#include "Naming/EntreeService.ProcessGatewayMessageAsyncOperation.h"
#include "Naming/EntreeService.ProcessServiceNotificationRequestAsyncOperation.h"
#include "Naming/EntreeService.ProcessQueryAsyncOperation.h"
#include "Naming/EntreeService.ForwardToTokenValidationServiceAsyncOperation.h"
#include "Naming/EntreeService.StartNodeAsyncOperation.h"
#include "Naming/EntreeService.Test_TestNamespaceManagerAsyncOperation.h"
#include "Naming/ILocalStore.h"
#include "Naming/INamingStoreServiceRouter.h"
#include "Naming/StoreServiceEventSource.h"
#include "Naming/StoreServiceHealthMonitor.h"
#include "Naming/StoreServiceProperties.h"
#include "Naming/resolvenamelocationasyncoperation.h"
#include "Naming/HierarchyNameState.h"
#include "Naming/HierarchyNameData.h"
#include "Naming/PendingNamesHierarchy.h"
#include "Naming/NameData.h"
#include "Naming/NamingStore.h"
#include "Naming/RecoverPrimaryAsyncOperation.h"
#include "Naming/WriteServiceAtAuthorityAsyncOperation.h"
#include "Naming/UpdateServiceAtAuthorityAsyncOperation.h"
#include "Naming/WriteServiceAtNameOwnerAsyncOperation.h"
#include "Naming/RemoveServiceAtAuthorityAsyncOperation.h"
#include "Naming/RemoveServiceAtNameOwnerAsyncOperation.h"
#include "Naming/NamingStoreJobQueueConfigSettingsHolder.h"
#include "Naming/StoreService.h"
#include "Naming/StoreServiceFactory.h"
#include "Naming/StoreService.ProcessRequestAsyncOperation.h"
#include "Naming/StoreService.ProcessCreateNameRequestAsyncOperation.h"
#include "Naming/StoreService.ProcessDeleteNameRequestAsyncOperation.h"
#include "Naming/StoreService.ProcessNameExistsRequestAsyncOperation.h"
#include "Naming/StoreService.ProcessInnerCreateNameRequestAsyncOperation.h"
#include "Naming/StoreService.ProcessInnerDeleteNameRequestAsyncOperation.h"
#include "Naming/StoreService.ProcessCreateServiceRequestAsyncOperation.h"
#include "Naming/StoreService.ProcessUpdateServiceRequestAsyncOperation.h"
#include "Naming/StoreService.ProcessDeleteServiceRequestAsyncOperation.h"
#include "Naming/StoreService.ProcessInnerCreateServiceRequestAsyncOperation.h"
#include "Naming/StoreService.ProcessInnerUpdateServiceRequestAsyncOperation.h"
#include "Naming/StoreService.ProcessInnerDeleteServiceRequestAsyncOperation.h"
#include "Naming/StoreService.ProcessEnumeratePropertiesRequestAsyncOperation.h"
#include "Naming/StoreService.ProcessEnumerateSubNamesRequestAsyncOperation.h"
#include "Naming/StoreService.ProcessPropertyBatchRequestAsyncOperation.h"
#include "Naming/StoreService.ProcessServiceExistsRequestAsyncOperation.h"
#include "Naming/StoreService.ProcessPrefixResolveRequestAsyncOperation.h"
#include "Naming/StoreService.ProcessInvalidRequestAsyncOperation.h"
#include "Naming/TestTokenAuthenticator.h"
